home *** CD-ROM | disk | FTP | other *** search
AMOS Source Code | 1993-08-10 | 2.1 KB | 71 lines |
- Screen Open 0,320,256,16,0
- 'Load Iff "bobs.iff",0
- Cls 0
- Get Sprite Palette
- Double Buffer
- Dim F(30,5),A(7,3),B(30),S(7,4)
- ' 0=X Koordinate
- ' 1=Y Koordinate
- ' 2=Actual Frame
- ' 3=Direction
- ' 4=Status
- ' 5=Target
- For A=0 To 7
- Read A(A,0),A(A,1),A(A,2),A(A,3)
- Next
- For A=0 To 9
- F(A,0)=Rnd(50)
- F(A,1)=Rnd(220)
- F(A,4)=0
- F(A,5)=10
- Next
- For A=10 To 19
- F(A,0)=Rnd(50)+280
- F(A,1)=Rnd(220)
- F(A,4)=1
- F(A,5)=0
- Next
- Auto View Off
- Screen Swap
- Palette 4095
- For A=16 To 31 : Colour A,0 : Next
- Do
- For A=0 To 9
- X=F(B+10,0)-F(A,0) : Y=F(B+10,1)-F(A,1) : D=(Abs(X)+Abs(Y))/2
- X=F(F(A,5),0)-F(A,0) : Y=F(F(A,5),1)-F(A,1)
- If D<(Abs(X)+Abs(Y))/2 and B(B+10)=0 Then B(F(A,5))=0 : F(A,5)=B+10 : B(B+10)=1
- SX=Sgn(X) : SY=Sgn(Y) : If Abs(X)<18 and Abs(Y)<18 and F(A,4)=0 Then Add S,1,0 To 7 : S(S,2)=SX*5 : S(S,3)=SY*5 : F(A,4)=3 : SX=0 : SY=0
- Gosub BER
- F=A(F(A,3),F(A,2))+16
- If F(A,4)=3 Then F(A,4)=5 : F=A(F(A,3),F(A,2)) : Shoot : S(S,0)=F(A,0) : S(S,1)=F(A,1) : S(S,4)=10
- Bob A,F(A,0),F(A,1),F
- Next
- Add B,1,0 To 9
- For A=10 To 19
- X=F(B,0)-F(A,0) : Y=F(B,1)-F(A,1) : D=(Abs(X)+Abs(Y))/2
- X=F(F(A,5),0)-F(A,0) : Y=F(F(A,5),1)-F(A,1)
- If D<(Abs(X)+Abs(Y))/2 and B(B)=0 Then B(F(A,5))=0 : F(A,5)=B : B(B)=1
- SX=Sgn(X) : SY=Sgn(Y) : If Abs(X)<18 and Abs(Y)<18 and F(A,4)=1 Then Add S,1,0 To 7 : S(S,2)=SX*5 : S(S,3)=SY*5 : F(A,4)=3 : SX=0 : SY=0
- Gosub BER
- F=A(F(A,3),F(A,2))+16
- If F(A,4)=3 Then F(A,4)=5 : F=A(F(A,3),F(A,2)) : Shoot : S(S,0)=F(A,0) : S(S,1)=F(A,1) : S(S,4)=70
- Bob A,F(A,0),F(A,1),F+67
- Next
- For A=0 To 7
- If S(A,4)>0 Then Add S(A,0),S(A,2) : Add S(A,1),S(A,3) : Dec S(A,4) : Sprite A,S(A,0)+132,S(A,1)+44,137 Else Sprite Off A
- Next
- Loop
- BER:
- If SX=0 and SY=0 Then F(A,2)=0 : Return
- If SX=-1 and SY=0 Then D=0
- If SX=1 and SY=0 Then D=1
- If SX=0 and SY=-1 Then D=2
- If SX=0 and SY=1 Then D=3
- If SX=-1 and SY=-1 Then D=4
- If SX=1 and SY=-1 Then D=5
- If SX=-1 and SY=1 Then D=6
- If SX=1 and SY=1 Then D=7
- F(A,3)=D : Add F(A,2),1,0 To 3 : F(A,0)=F(A,0)+SX : F(A,1)=F(A,1)+SY
- Return
- Data 4,5,4,6,3,2,3,1,7,8,7,9,12,11,12,10
- Data 15,15,15,15,16,16,16,16,14,14,14,14,13,13,13,13